dgb(M3): real bind_aux_doge_parsers() body — ODR-use DGB-parent AuxPoW contracts in prod objlib - #400
Merged
Merged
Conversation
Replace the slice-#3 forward-decl seam with the real shared-module includes (impl/doge/coin/auxpow.hpp + dgb transaction + dgb-local aux_doge_parent_traits) so the DGB-parent AuxPoW template emissions are ODR-used in the production dgb object library, not merely in fixtures. bind_aux_doge_parsers() now assigns m_aux_doge_parser to a real callable driving parse_aux_header<PackStream, dgb::coin::MutableTransaction>(), forcing emission of parse_aux_header<dgb>/CAuxPow<dgb> in prod. New KAT aux_doge_bind_parsers_test drives a canonical DGB-parent blob through the bound member. AUX_DOGE-fenced; Scrypt-only build byte-unchanged; src/impl/ doge consumed-not-modified. Registered in CMake + both build.yml arms.
The bind test is registered in the default COIN_DGB build arm too (build.yml allowlist, both arms) so the target is never a NOT_BUILT sentinel. But two of its cases call node.bind_aux_doge_parsers()/aux_doge_parser(), which are #ifdef AUX_DOGE members of dgb::coin::Node and do not exist in the default Scrypt-only arm. That made the default-arm Build-tests step fail to compile. Fence those two cases (BoundParserConsumesDgbParentBlob, BoundParserAuxRoundTripsByteIdentical) behind #ifdef AUX_DOGE. The BlobMatchesBuilder self-consistency case touches only the header-only shared templates, so it still runs in both arms. Default arm: 1/1; +AUX_DOGE: 3/3.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
M3 makes the AUX_DOGE seam non-hollow: bind_aux_doge_parsers() gets a real callable binding that ODR-uses parse_aux_headerdgb::coin::MutableTransaction / CAuxPowdgb::coin::MutableTransaction in the PRODUCTION dgb object library (previously decl-only / test-fixture-only).
Scope discipline:
Evidence (local, -DCOIN_DGB=ON -DAUX_DOGE=ON):
Parity: p2pool-merged-v36. NO self-merge — integrator runs the merge-gate.